#ifndef _Jogo_h
#define _Jogo_h

#include <stdint.h>
#include <stdbool.h>
/* Clause SEES */
#include "Bool_TYPE.h"
#include "ComparacaoDeCartas.h"
#include "SetsCarta.h"

/* Clause INCLUDES */
#include "PilhaDeAtaqueEDePuxarCartas.h"

/* Clause IMPORTS */
#include "PilhaDeAtaqueEDePuxarCartas.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/* Clause SETS */
typedef enum
{
    Jogo__jogador1,
    Jogo__jogador2
    
} Jogo__quemGanhou;

/* Clause CONCRETE_VARIABLES */


/* Clause CONCRETE_CONSTANTS */
/* Basic constants */
/* Array and record constants */
extern void Jogo__INITIALISATION(void);

/* Clause OPERATIONS */

extern void Jogo__inicializarMaoJogador1(void);
extern void Jogo__inicializarMaoJogador2(void);
extern void Jogo__puxarCartaJogador1(void);
extern void Jogo__puxarCartaJogador2(void);
extern void Jogo__passarTurnoJogador1(void);
extern void Jogo__passarTurnoJogador2(void);
extern void Jogo__verVidasJogador1(int32_t *vidaJogador1);
extern void Jogo__verVidasJogador2(int32_t *vidaJogador2);
extern void Jogo__imprimirNaipesMaoJogador1();
extern void Jogo__atacarJogador1(SetsCarta__naipes naipeCartaAtaque, SetsCarta__valores valorCartaAtaque, int32_t indiceCartaNaMaoDoJogador1);
extern void Jogo__atacarJogador2(SetsCarta__naipes naipeCartaAtaque, SetsCarta__valores valorCartaAtaque, int32_t indiceCartaNaMaoDoJogador2);
extern void Jogo__verCartaNoTopoDaPilhaDeAtaque(SetsCarta__naipes *naipePilhaAtaque, SetsCarta__valores *valorPilhaAtaque);
extern void Jogo__realizarProcedimentoPilhaDeAtaqueFoiModificada(void);
extern void Jogo__chamarTerminarAtaque(void);
extern void Jogo__chamarTerminarComparacaoDeCartas(void);
extern void Jogo__chamarChamarTerminarValor1VenceValor2(void);
extern void Jogo__verQuemGanhouOJogo(Jogo__quemGanhou *ganhador);

extern void Jogo__imprimirNaipesMaoJogador2();
extern void Jogo__imprimirCoracoesJogador1();
extern void Jogo__imprimirCoracoesJogador2();

extern void Jogo__imprimirValoresMaoJogador1();
extern void Jogo__imprimirValoresMaoJogador2();

extern void Jogo__ImprimirCartaNoTopoDaPilhaDeAtaque();
extern void Jogo__imprimirQuemGanhouOJogo();

#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* _Jogo_h */
